pango_layout_iter_free (run_iter);
}
+void
+gtk_text_layout_update_children (GtkTextLayout *text_layout,
+ GtkTextLineDisplay *display)
+{
+ allocate_child_widgets (text_layout, display);
+}
+
static void
convert_color (GdkRGBA *result,
PangoAttrColor *attr)
if (tags != NULL)
g_ptr_array_free (tags, TRUE);
+ display->has_children = saw_widget;
+
if (saw_widget)
allocate_child_widgets (layout, display);
GtkTextLine *line;
GdkRectangle block_cursor;
+
guint cursors_invalid : 1;
guint has_block_cursor : 1;
guint cursor_at_line_end : 1;
guint size_only : 1;
+ guint pg_bg_rgba_set : 1;
+ guint has_children : 1;
GdkRGBA pg_bg_rgba;
- guint pg_bg_rgba_set : 1;
};
#ifdef GTK_COMPILATION
void gtk_text_layout_update_display_cursors (GtkTextLayout *layout,
GtkTextLine *line,
GtkTextLineDisplay *display);
+void gtk_text_layout_update_children (GtkTextLayout *layout,
+ GtkTextLineDisplay *display);
gboolean _gtk_text_layout_get_block_cursor (GtkTextLayout *layout,
GdkRectangle *pos);
gboolean gtk_text_layout_clamp_iter_to_vrange (GtkTextLayout *layout,
if (!size_only && display->line == cache->cursor_line)
gtk_text_layout_update_display_cursors (layout, display->line, display);
+ if (!size_only && display->has_children)
+ gtk_text_layout_update_children (layout, display);
+
/* Move to front of MRU */
g_queue_unlink (&cache->mru, &display->mru_link);
g_queue_push_head_link (&cache->mru, &display->mru_link);
if (line == cache->cursor_line)
gtk_text_layout_update_display_cursors (layout, line, display);
+ if (display->has_children)
+ gtk_text_layout_update_children (layout, display);
+
gtk_text_line_display_cache_take_display (cache,
gtk_text_line_display_ref (display),
layout);